using System;
using System.Diagnostics;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace TitleBarColorTest
{
    public partial class TitleBarColorVerification : Form
    {
        private StringBuilder logMessages = new StringBuilder();
        
        public TitleBarColorVerification()
        {
            // 初始化组件
            InitializeComponent();
            
            // 显示调试信息
            this.Load += TitleBarColorVerification_Load;
        }
        
        private void TitleBarColorVerification_Load(object sender, EventArgs e)
        {
            // 在控制台和调试输出中显示信息
            LogMessage("标题栏颜色测试开始...");
            
            // 创建一个简单的主题配置来测试标题栏颜色
            TestTitleBarColors();
            
            // 显示测试完成信息
            LogMessage("标题栏颜色测试完成");
            
            // 显示所有日志消息
            ShowLogMessages();
            
            // 在消息框中显示日志以便查看
            MessageBox.Show(logMessages.ToString(), "调试信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
        
        private void LogMessage(string message)
        {
            Console.WriteLine(message);
            Debug.WriteLine(message);
            logMessages.AppendLine(message);
        }
        
        private void ShowLogMessages()
        {
            // 在窗体上显示日志消息
            var logLabel = new Label
            {
                Text = logMessages.ToString(),
                AutoSize = true,
                Location = new Point(20, 100),
                ForeColor = Color.Blue
            };
            this.Controls.Add(logLabel);
        }
        
        private void TestTitleBarColors()
        {
            try
            {
                // 显示系统版本信息
                var version = Environment.OSVersion.Version;
                LogMessage($"当前系统版本: {version}");
                LogMessage($"Build版本: {version.Build}");
                LogMessage($"是否支持标题栏颜色: {version.Build >= 18985}");
                
                // 创建一个ThemeManager实例来进行测试
                var themeManager = new ThemeManager();
                
                // 应用主题到当前窗体
                themeManager.ApplyTheme(this);
                
                // 添加一些说明文本
                var infoLabel = new Label
                {
                    Text = "如果标题栏颜色已更改，则表示功能正常工作。\n请检查标题栏是否变为蓝色背景和白色文字。\n\n系统版本: " + version.ToString(),
                    AutoSize = true,
                    Location = new Point(20, 50)
                };
                this.Controls.Add(infoLabel);
                
                // 调整窗体大小
                this.Size = new Size(500, 300);
                this.Text = "标题栏颜色测试 - Build " + version.Build;
            }
            catch (Exception ex)
            {
                string errorMsg = $"测试过程中出现错误: {ex.Message}\n{ex.StackTrace}";
                LogMessage(errorMsg);
                MessageBox.Show(errorMsg, "错误", 
                    MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
    }
}